﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Model;



namespace ControllerLag
{
    public class Controllere
    {
        // instansiere klasserne AktuelleAuktion og Opkobling
        AktuelleAuktion aktuelAuktion;
        Opkobling opkoplingen;

        // laver et låseobjekt 
        object lås = new object();
        
        // constructor 
        public Controllere()
        {
            aktuelAuktion = new AktuelleAuktion();
            opkoplingen = new Opkobling(aktuelAuktion);
            
        }

        // en metode der starter en ny auktion 
        public void AfholdAuktioner()
        {
            // så længe der stadig er en auktion der venter skal denne lykke kører
            while (aktuelAuktion.Queue.Count != 0)
            {
                // hvis der stadig er nogen aktuelle auktioner 
                if (aktuelAuktion != null)
                {
                    aktuelAuktion.NæsteAuktion();
                    aktuelAuktion.HammerslagsTimer();
                }
                
            }
                
            
                
        }

        // oprætter auktioner, med data fra vores server GUI
        public void OpretAuktion(string navn, int pris, string beskrivelse)
        {
            aktuelAuktion.OpretAuktion(navn, beskrivelse, pris);
        }

        

        #region *** Properties ***

        public AktuelleAuktion AktuelAuktion
        {
            get { lock (lås) return aktuelAuktion; }
        }

        public Opkobling Opkoplingen
        {
            get { lock (lås) return opkoplingen; }
        }

        #endregion
    }
}
